<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 用两个栈来实现一个队列，完成队列的Push和Pop操作。 队列中的元素为int类型。
        // 分析：
        // 入队：直接将元素放入栈中
        // 出队：如果outStack不为空,则弹出元素
        //      如果outStack为空，则判断inpStack是否为空，
        //  如果inpStack不为空则将入栈中的数据pop出来 push到出栈队列中
        //  如果inpStack为空，则将出栈中的数据出栈

        // 时间复杂度是 O(N)，空间复杂度是 O(N)。
        
        let inpStack = [],
            outStack = [];

        function push(node) {
            inpStack.push(node)
        }

        function pop() {
            if (outStack.length) {
                return outStack.pop();
            } else {
                while (inpStack.length) {
                    outStack.push(inpStack.pop())
                }
                return outStack.pop();
            }
        }
    </script>
</body>

</html>